package luke.core.config;

import java.util.List;

/**
 * 版本信息类，用于解析JSON格式的版本更新信息
 */
public class VersionInfo {
    private String latest_version;
    private List<String> mandatory_update_versions;
    private String download_url;
    private boolean direct_download = false; // 默认使用浏览器下载
    private String update_notes; // 新增：更新内容字段
    
    // 默认构造函数
    public VersionInfo() {
    }
    
    // 带参数的构造函数
    public VersionInfo(String latestVersion, List<String> mandatoryUpdateVersions, String downloadUrl) {
        this.latest_version = latestVersion;
        this.mandatory_update_versions = mandatoryUpdateVersions;
        this.download_url = downloadUrl;
    }
    
    // getter和setter方法
    public String getLatest_version() {
        return latest_version;
    }
    
    public void setLatest_version(String latest_version) {
        this.latest_version = latest_version;
    }
    
    public List<String> getMandatory_update_versions() {
        return mandatory_update_versions;
    }
    
    public void setMandatory_update_versions(List<String> mandatory_update_versions) {
        this.mandatory_update_versions = mandatory_update_versions;
    }
    
    public String getDownload_url() {
        return download_url;
    }
    
    public void setDownload_url(String download_url) {
        this.download_url = download_url;
    }
    
    /**
     * 获取是否直接下载的标志
     * @return true表示直接下载，false表示使用浏览器下载
     */
    public boolean isDirectDownload() {
        return direct_download;
    }
    
    /**
     * 设置是否直接下载
     * @param directDownload true表示直接下载，false表示使用浏览器下载
     */
    public void setDirectDownload(boolean directDownload) {
        this.direct_download = directDownload;
    }
    
    /**
     * 获取更新内容
     * @return 更新内容文本
     */
    public String getUpdate_notes() {
        return update_notes;
    }
    
    /**
     * 设置更新内容
     * @param update_notes 更新内容文本
     */
    public void setUpdate_notes(String update_notes) {
        this.update_notes = update_notes;
    }
    
    /**
     * 检查指定版本是否在强制更新列表中
     * @param version 要检查的版本号
     * @return 如果在强制更新列表中返回true，否则返回false
     */
    public boolean isMandatoryUpdate(String version) {
        return mandatory_update_versions != null && mandatory_update_versions.contains(version);
    }
}